Traditionally, two architectures have been introduced to enable publishing or broadcasting video content, referred to as “video clips”, over the worldwide web; namely, a server-based architecture and a peer-to-peer architecture.
The server-based architecture requires that a creator of a video clip, referred to as a “content owner”, upload his video clip to an Internet server. The Internet server maintains a directory of content and allows users to view the content and download or stream the content. The disadvantages of this approach are: (1) it is time-consuming to upload large video files; and (2) the content owner must maintain his content on his own computer system and also on the Internet server, which is cumbersome. To speed up the upload process, the content owner generally reduces the size and quality of the video clips that are broadcast. Video normally seen in full-screen size when played locally from the owner's hard drive, becomes confined to small windows, one-fifth the size of the original, when streamed from a remote server over the Internet.
The peer-to-peer (P2P) computing architecture, which relies less upon dedicated servers, provides an alternative approach. Peer-to-peer computing involves sharing of computer resources and services through direct communication between peer computer systems. Conventional P2P computing enables peer computers to exchange files and to communicate directly between one another. As such, a peer computer may act as a client device or a server device, depending on the computing process and the needs of the network of peer computers.
The peer-to-peer architecture was initially introduced to enable interactive, person-to-person communication on the Internet. Early Internet Relay Chat (IRC) systems enabled people all over the world to participate in real-time text-based conversations. Using an IRC client, a user can exchange text messages interactively with other users. When logged into a chat session, a user “converses” by typing messages that are instantly sent to other chat participants. In recent years, instant messaging (IM) systems, such as AOL's Instant Messenger, Microsoft's MSN Instant Messenger and Yahoo!'s Pager have added the capability to transmit files, including video, sound and image rich media files, between peer computers. However, transmitting rich media files using IRC or IM systems has the disadvantage that the entire media file must be transmitted, which is cumbersome for the content owner, and the disadvantage that the content owner loses control over his media.
Some recent popular forms of P2P computing include the file-sharing services provided by Napster, Gnutella, Freenet and Groove. These file-sharing services allow peer computers to identify and share data files with other peer computers over the Internet. Napster, for example, utilizes a centralized directory service that is provided on one or more dedicated server computers connected to the Internet. To search for and discover a file, such as an MP3 song, to download from another peer computer, a Napster client queries the dedicated server computers and central directory therein, which responds with a list of other Napster configured peer computers that have the requested file. The requesting Napster client then connects directly with one of the identified other peer computers, to access and download the requested file. The other peer computer acts as a server to support the downloading process. A disadvantage of this approach is that the Napster server may not have up-to-date information about the Napster clients, and thus some content may be unavailable or out-of-date. Another disadvantage is that the central directory may indicate that certain content is available from a peer, but that peer may not be online and so a requesting peer would not be able to make a connection.
Unlike Napster, Gnutella does not rely on a centralized directory service, and thus does not require dedicated server devices. Instead, files are discovered by having peer computers directly communicate, and pass queries from peer computers to other neighboring peer computers. Upon receiving a query, a Gnutella peer computer may, for example, decide to do nothing, respond back to the requesting peer computer, such as by notifying the requester that the requested file has been found, or forward the query on to one or more other peer computers, thus widening the search for a given file. If the requested file is available for access and downloading from at least one of the other peer computers, then the requesting Gnutella peer computer, acting as a client device, connects to that peer computer and begins accessing and downloading the requested file. Here, again, the other peer computer acts as a server during the accessing or downloading process.
A general disadvantage of peer-to-peer file sharing is that if a client receives several requests simultaneously, then these requests compete for the relatively limited resources of bandwidth and disk access. Therefore, either the system degrades with each additional simultaneous requester, or the receiving client must refuse service to additional requestors. By contrast, with server-based approaches the provider of the service can add additional servers and load balance among them, and they can store multiple copies and cache often-requested media.
Disadvantageously, most P2P file-sharing services require a user to download an entire file. Although the downloading of a file gives a user certain advantages, the transfer of the file and subsequent viewing and/or listening can be undesirable from the perspective of a content owner. The relative ease with which a copy of a file can be obtained can lead to copyright violation. Further, the transfer of files can be in non-real time, which permits a user to transfer a substantial quantity of data from other users in a short period of time. This can undesirably occupy a large amount of network bandwidth for both the user who is copying the files and the users who are providing the files.
Music and video streaming was introduced to eliminate the disadvantages associated with downloading or uploading rich media files. Streaming enables a user to view a video clip as it is being received on their computer, without having to wait for the video file to be received in its entirety before playback can begin, and without saving a copy of the video file.
Thus, it would be of advantage to have a service that streams music and video, does not require that a content owner upload his media files to a server, provides up-to-date information about available media clips, caches often-requested media files on a server computer, and does not require special media playing software to view streamed videos, music and images.